package com.wl.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.wl.entity.Apply_01;
import com.wl.entity.Loginfo;
import com.wl.util.PageData;

public interface Apply_01Service {
	
    /**
     * 01环节提交给表里增加数据
     * @param record
     * @return
     */
    boolean insert(Apply_01 record,Loginfo log);
    
    /**
     * 根据编号查询数据，用于其他环节审批时展示数据用
     * @param flowid
     * @return
     */
    public Apply_01 selectByflowid(String flowid);
    
    
	/**
	 * 根据flowid修改流程状态，用于驳回的流程再次提交
	 * 
	 * @param record
	 * @return
	 */
	public boolean updateStatusByFlowid(Apply_01 record,Loginfo log);
	
	
	/**
	 * 根据flowid修改流程状态，用于被驳回的流程
	 * 
	 * @param record
	 * @return
	 */
	public boolean updateBackByFlowid(Apply_01 record);
	
	
	/**
	 * 按照编号查找该处理人当前未处理流程 分页
	 * 
	 * @param applyno
	 * @return
	 */
	public PageData<Apply_01> selectNotHandByName(@Param("applyno") String applyno, @Param("page") int page,
			@Param("limit") int limit);
	
	
	/**
	 * 按照编号查找我提交的流程 分页
	 * 
	 * @param applyno
	 * @return
	 */
	public PageData<Apply_01> selectMyApplyByName(@Param("applyno") String applyno, @Param("page") int page,
			@Param("limit") int limit);
    

	/**
	 * 查找所有申请 分页
	 * 
	 * @param applyno
	 * @return
	 */
	public PageData<Apply_01> selectAllApply(@Param("page") int page,@Param("limit") int limit);
	
	
	/**
	 * 多条件查询  分页
	 * @param searchflowid 流程编号
	 * @param page 当前页
	 * @param limit 每页记录数
	 * @param searchmaterial 物料编码
	 * @param searchapply 申请人编号
	 * @param searchdept 申请人部门
	 * @param searchdatebegin 时间区间
	 * @param searchdateend 时间区间
	 * @return
	 */
	public PageData<Apply_01> selectBySearch(@Param("searchflowid") String searchflowid, @Param("page") int page,
			@Param("limit") int limit, @Param("searchmaterial") String searchmaterial,
			@Param("searchapply") String searchapply, @Param("searchdept") String searchdept,
			@Param("searchdatebegin") String searchdatebegin, @Param("searchdateend") String searchdateend);
	
	/**
	 * 查询申请数量
	 * @return
	 */
	public int getCountByApplyOne();
	
	
	/**
	 * 按照部门查找申请单数  欢迎页面柱状图
	 * @param deptname
	 * @return
	 */
	public int getCountByDept(String deptname);
	
	
	/**
	 * 按照部门查找用料总数  欢迎页面环形图
	 * @param deptname
	 * @return
	 */
	public int getmetrialCountByDept(String deptname);
}
